概要
この記事では、Unreal Engine 5(UE5)プロジェクトにおいてバージョン管理が不可欠である理由、バージョン管理の利点、そして標準のGitよりもUE Git Pluginの方が優れている理由を説明します。また、UEGitPlugin(Git LFS 2)を使用してUE5プロジェクトでバージョン管理を設定する手順を、公式のインストールガイドよりも詳しく説明します。
環境
- Unreal Engine 5.4
- Git 2.44.0
- UEGitPlugin 3.16
- Windows 11 Pro
Unreal Engine 5でバージョン管理を使用すべき理由
バージョン管理はゲーム開発において不可欠であり、UE5で作業する際に適切なバージョン管理システムを導入することで、多くの問題を回避できます。ソロ開発者でもチームでも、バージョン管理を使用することで作業のバックアップ、整理、復元が容易になります。
以下に、UE5でバージョン管理を使用する利点を紹介します。
1. プロジェクトのバックアップと復元
ゲームプロジェクトは複雑であり、誤ってファイルを削除したり、クラッシュやファイル破損によって進行状況を失うことは致命的です。バージョン管理を使用すれば、プロジェクトの以前のバージョンに簡単に戻ることができ、大切な作業を失う心配がありません。
2. チームでのコラボレーションとワークフローの改善
チーム開発では、バージョン管理を活用することでスムーズなコラボレーションが可能になります。複数の開発者が異なる機能を同時に作業でき、互いの作業を上書きする心配がありません。ブランチとマージを活用することで、変更を適切に統合しながらプロジェクトの安定性を維持できます。
3. リスクなしでの実験
新しいゲームメカニクスを試したいが、プロジェクトが壊れるのが怖い? バージョン管理を使えば、別のブランチを作成してアイデアをテストし、問題がなければ統合することができます。この柔軟性により、実験や革新がしやすくなります。
4. 変更履歴の追跡とデバッグの容易化
バージョン管理はプロジェクトの変更履歴を保持するため、バグが発生した際に「いつ」「どこで」問題が発生したのかを特定しやすくなります。過去のコミットを確認することで、バグの原因を素早く特定でき、デバッグ作業を大幅に効率化できます。
なぜ標準のGitではなくUE Git Pluginを使うべきか?
バイナリファイルの適切な管理
Unreal Engineのプロジェクトには、.uasset
や .umap
など、多くのバイナリファイルが含まれています。これらのファイルは通常のテキストベースのソースコードとは異なり、Gitでの差分管理が困難です。標準のGitでは大容量のバイナリファイルの管理が難しいのに対し、UE Git Pluginはファイルロック(Check Out)機能を備えており、Perforce、Plastic SCM、SVNのような管理が可能です。
この動画(27:55 - 32:47)では、標準のGitがUEプロジェクトに適していない理由が解説されています:
バージョン管理ツールの選択に関する提案
チーム規模 | 推奨バージョン管理ツール |
---|---|
ソロ開発者 | Git + UE Git Plugin または標準Git + LFS |
チーム(2~5人) | Git + UE Git Plugin / Plastic SCM / Subversion |
チーム(6人以上) | Perforce(ただしコストが高い)を検討 |
UE Git Plugin のインストールと設定方法
以下の手順に従って、UE Git Plugin を UE5 にインストールして有効化します。
このプラグインは Visual Studio(または Rider)を使用してコンパイルする必要があるため、プロジェクトに少なくとも 1 つの C++ ファイルが必要です。
ステップ 1: Git のインストール
システムに Git がインストールされていることを確認してください。未インストールの場合は、git-scm.com からダウンロードしてインストールしてください。
インストール時に、Git LFS と Git Credential Manager のチェックを忘れずに行ってください。
ステップ 2: Git 認証の設定
Git Bash を起動します。
GitHub アカウントを設定します:
1git config --global user.name "yourUserName" 2git config --global user.email yourEmail
ステップ3: Gitリポジトリのセットアップ
Gitリポジトリをセットアップするには、GitHub Desktop、Fork、またはSourcetree などのGit GUIクライアントが必要になる場合があります。または、コマンドラインBashを使用することも可能です。
この例では、Fork を使用してリポジトリを作成します。
- Forkを開き、File -> Init New Repository... を選択します。
-
プロジェクトのルートフォルダを選択します。
-
GitHub にアクセスし、右上の + ボタンをクリックして、New repository を選択します。
- リポジトリ名を入力し、Public または Private を選択した後、Create repository をクリックします。
- HTTPS が選択されていることを確認し、コピーアイコンをクリックしてリポジトリURLをコピーします。
- Fork に戻り、右クリックで Remotes -> Add New Remote... を選択します。
- コピーしたリポジトリURLを Repository URL に貼り付け、Add New Remote をクリックします。
ステップ 4: UEGitPlugin をダウンロード
Unreal Engine Git Plugin にアクセスし、ZIP ファイルをダウンロードします。
プロジェクトにインストール
ダウンロードしたプラグインを project/Plugins/Developer
に解凍します。
Plugins
または Developer
フォルダが存在しない場合は作成してください。
解凍後、UEGitPlugin-3.16
フォルダ内に別の UEGitPlugin-3.16
フォルダが生成される場合があります。
その場合は、1つに統一し、Developer
フォルダ内に UEGitPlugin-3.16
が1つだけ存在するようにしてください。
フォルダ構成は以下のようになります。
エンジンにインストールする場合
Engine/Plugins/Developer
フォルダに解凍します。
その後、Engine/Plugins/Developer/GitSourceControl.uplugin
を
Engine/Plugins/Developer/GitSourceControl.uplugin.disabled
にリネームしてください。
ステップ 5: .gitattributes と .gitignore の設定
プロジェクトのルートフォルダにて:
.gitattributes
ファイルを作成し、以下のリンクから内容をコピーしてください。
.gitattributes.gitignore
ファイルを作成し、以下のリンクから内容をコピーしてください。
.gitignore
ステップ 6: プラグインをコンパイル
Visual Studio または Rider でプロジェクトの .sln
ファイルを開き、ビルドを実行します。
ステップ 7: UE リビジョンコントロールの設定
- UE5 を開き、プラグインメニュー(Edit->Plugins)から Git LFS 2 を有効化します。
- 右下の Revision Control をクリックします。
- Connect to Revision Control... をクリックします。
- Git LFS 2 をプロバイダーとして選択します。
- Git Path を
git.exe
に設定し、Uses Git LFS にチェックを入れます。
また、GitHub のユーザー名を入力し、表示されている「UserName」と一致していることを確認してください。
- Accept Settings をクリックします。
ステップ8: プラグイン設定
Config/DefaultEditorPerProjectUserSettings.ini
を編集し、以下の内容を貼り付けます。
DefaultEditorPerProjectUserSettings.ini1[/Script/UnrealEd.EditorLoadingSavingSettings] 2bSCCAutoAddNewFiles=False 3bAutomaticallyCheckoutOnAssetModification=False 4bPromptForCheckoutOnAssetModification=True 5 6[/Script/UnrealEd.EditorPerProjectUserSettings] 7bAutoloadCheckedOutPackages=True
これで完了です!
使い方
UE5 で Pull, Push, Commit を実行
ファイル履歴の確認
チェックアウト (ロック) 機能
ファイルを編集して保存すると、自動でチェックアウト (赤いチェックマーク) されます。
また、手動でチェックアウトすることも可能です: 右クリック → Revision Control → Check Out
他のユーザーは、あなたがコミット & プッシュするか、変更を元に戻すまで、
ロックされたファイルを編集できません。
プラグイン GitHub ページ
詳細については、公式プラグインページをご覧ください。
Unreal Engine Git Plugin
感謝
このプラグインを紹介してくれた @aizen76 (alwei) さんと @toshiyuki_wada (ぽちお) さんに感謝します。
また、インストール時の問題解決を手助けしてくれた
プラグイン作者の mastercoms さんにも感謝します。
ご質問がございましたら、お気軽にコメントをお寄せください。
参考資料
- Unreal Engine Git Plugin
- 動画: Ari Arnbjörnsson (Housemarque): Lessons Learned from a Year of UE4 AAA Development
- 動画: How To Use GitHub With Unreal Engine | Unreal Engine Remote Team Projects Collaboration
- 動画: Version Control in Unreal Engine 5 - Git, Github and Gitlab
- 動画: Dive into Source Control in Unreal Engine | Webinar
- 動画: 【UE5 x Git 入門】ローカルだけでも使えるよ!今日からはじめるバージョン管理【Azure】
- UE 奈良 LT UE5 プロジェクトを Git で管理しよう
- 【UE5】チーム開発における Git の運用例
- 【Git/UE5】Git を用いた Unreal Engine のバージョン管理の始め方
- Unreal Engine の Revision Control (Source Control)で Git を利用する(1)